// 

// This module is the central module of the network
// response to allocate the tasks, GPUs and routes
// Should be in application layer

package ib_cluster.network_module.control;

simple CentralController {
    parameters:
        @controlplane;
        int numMachine = default(2);
        int numSwitch = default(8);
        int numOxc = default(2);
        int numGpusperMachine = default(8);
        // enum ClusterType {
        //    OpticalCluster,
        //    ElectricalCluster,
        //    IbCluster
        //};
        int clustertype = default(0);
    gates:
        input task_generater_port;
        inout switch_port[numSwitch];
        inout machine_port[numMachine];
        output adapter_port;
}
